/**
 * @typedef {Object} Todo
 * @property {string} [id] - 待办事项ID
 * @property {string} title - 标题
 * @property {string} description - 描述
 * @property {string} dueDate - 截止日期
 * @property {'low'|'medium'|'high'} priority - 优先级
 * @property {boolean} [completed] - 是否完成
 * @property {string} [completedAt] - 完成时间
 * @property {string} [userId] - 用户ID
 * @property {string} [createdAt] - 创建时间
 */

import request from '@/utils/request'


// 查询待办事项列表
export function listTodos(query) {
  
  return request({
    url: '/api/todos',
    method: 'get',
    params: query
  }).catch(error => {
    console.error('获取待办事项列表失败:', error);
    // 出错时返回模拟数据
    return { data: mockTodos };
  });
}

// 查询待办事项详细
export function getTodo(todoId) {
  
  return request({
    url: '/api/todos/' + todoId,
    method: 'get'
  }).catch(error => {
    console.error('获取待办事项详情失败:', error);
  });
}

// 新增待办事项
export function createTodo(data) {
  
  return request({
    url: '/api/todos',
    method: 'post',
    data: data
  }).catch(error => {
    console.error('创建待办事项失败:', error);
  });
}

// 修改待办事项
export function updateTodo(todoId, data) {
  return request({
    url: '/api/todos/' + todoId,
    method: 'put',
    data: data
  }).catch(error => {
    console.error('更新待办事项失败:', error);

  });
}

// 更新待办事项为已完成
export function completeTodo(data) {
  return request({
    url: '/api/todos/complete',
    method: 'post',
    data: data
  }).catch(error => {
    console.error('待办事项更改为完成失败:', error);

  });
}

// 删除待办事项
export function deleteTodo(todoId) {
  return request({
    url: '/api/todos/' + todoId,
    method: 'delete'
  }).catch(error => {
    console.error('删除待办事项失败:', error);

  });
}

// 获取统计信息
export function getTodoStatistics(query) {
  
  return request({
    url: '/api/todos/statistics',
    method: 'get',
    params: query
  }).catch(error => {
    console.error('获取统计信息失败:', error);

  });
}